Recovery point objective via dynamic usage of bind segments in a global mirror environment

ABSTRACT

Embodiments for an approach to resource optimization during consistency group formation associated with a global mirror environment is provided. The approach detects when a primary volume associated with the consistency group has completed transmitting its out-of-sync (OOS) data towards its associated secondary volume. A command is sent to create a next consistency group sidefile so further writes can be sent to the sidefile rather than queueing at the primary volume. The approach repeats this process for each primary volume associated with the global mirror environment until all primary volumes are complete. Commands are sent to disable writes to the associated sidefiles and to merge the data stored in the sidefiles into normal cache as the next consistency group becomes the current consistency group.

BACKGROUND OF THE INVENTION

The present invention relates generally to global mirror environmentoptimization and more specifically, to improved recover point objective(RPO) based on increased bandwidth utilization.

A global mirror environment is a multi-site data replication solutionthat scales and provides a cross volume/storage subsystem with dataintegrity and data consistency. During consistency group formation,different primary volumes complete their data transfers at differenttimes, such that primary volumes that have completed their transferswill not transfer any more data until all the primary volumes associatedwith the current consistency group have completed their data transfer.Accordingly, writes to primary volumes that have completed their datatransfers for the current consistency group are queued, leading to anincrease in idle bandwidth as a greater number of primary volumescomplete their data transfer for the current consistency group.

SUMMARY

According to an embodiment of the present invention, a method forresource optimization during consistency group formation, the methodcomprising: determining, by one or more primary storage devices, if oneor more of a plurality of primary volumes associated with a currentconsistency group has completed sending out-of-sync (OOS) data towardsone or more secondary volumes associated with the plurality of primaryvolumes, respectively; responsive to the one or more of a plurality ofprimary volumes completing sending OOS data, sending, by the one or moreprimary storage devices, an “EnableNextCGSidefiles” command, to generatea storage location in excess cache space associated with a secondaryvolume, toward the plurality of secondary volumes, respectively, whereinthe storage location is a “NextCGSidefile” and further writes aredirected, by the one or more primary storage devices, to the“NextCGSidefile;” sending, by the one or more primary storage devices,change recording (CR) data toward the secondary volume; determining, bythe one or more primary storage devices, if the plurality of primaryvolumes associated with the current consistency group have completedsending out-of-sync (OOS) data towards a plurality of secondary volumesassociated with the plurality of primary volumes, respectively;responsive to the plurality of primary volumes completing sending OOSdata, stop sending, by the one or more primary storage devices, CR datatoward the plurality of secondary volumes, respectively; sending, by theone or more primary storage devices, a “DisableNextCGSidefiles” commandtoward the plurality of secondary volumes wherein the“DisableNextCGSidefiles” command directs further writes towards a normalcache associated with a secondary volume; sending, by the one or moreprimary storage devices, a “HardenNextCGSidefiles” command toward theplurality of secondary volumes wherein the “HardenNextCGSidefilescommand directs merging data associated with the “NextCGSidefile” withthe normal cache and the plurality of secondary volumes are associatedwith a global mirror environment; and sending, by the one or moreprimary storage devices, a “FlushNextCGSidefiles” command towards theplurality of secondary volumes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram generally depicting a global mirrorenvironment, in accordance with an embodiment of the present invention;

FIG. 2 is a functional block diagram depicting a primary storagecomponent associated with a global mirror environment, in accordancewith an embodiment of the present invention;

FIG. 3 is a functional block diagram depicting a secondary storagecomponent associated with a global mirror environment, in accordancewith an embodiment of the present invention;

FIG. 4 is a flowchart depicting operational steps of an a method forincreasing bandwidth utilization during consistency group formation,within a global mirror environment, in accordance with an embodiment ofthe present invention; and

FIG. 5 is a block diagram of components of improved bandwidthutilization during consistency group formation of a global mirrorcomputing environment, in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION

The embodiments depicted and described herein recognize the benefits ofutilizing the extra cache capacity of a volume associated with asecondary server and the bandwidth available at a volume associated witha primary server once the volume has completed transferring its data forthe current consistency group. Utilizing the extra cache capacity tohold a next consistency group (CG) the primary server can send writerequests towards the secondary server for storage in the nextconsistency group instead of queueing the writes at the primary serveruntil the current consistency group has completed. These embodimentsprovide for resource optimizations such as, but not limited to,increased bandwidth, disk, cache and cpu utilization towards the end ofthe current consistency group formation, resulting in a decrease inrecovery point object (RPO) for the next consistency group. It should benoted that the resource optimizations are most prevalent when theprimary servers experience varying workloads.

In describing embodiments in detail with reference to the figures, itshould be noted that references in the specification to “an embodiment,”“other embodiments,” etc., indicate that the embodiment described mayinclude a particular feature, structure, or characteristic, but everyembodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, describing a particularfeature, structure or characteristic in connection with an embodiment,one skilled in the art has the knowledge to affect such feature,structure or characteristic in connection with other embodiments whetheror not explicitly described.

FIG. 1 is a functional block diagram illustrating, generally, anembodiment of a global mirror environment 100. The global mirrorenvironment 100 comprises one or more primary volumes 106 operating onone or more primary storage 102 computing devices, one or more secondaryvolumes 108 operating on one or more secondary storage 104 computingdevices and a network 110 supporting communications between the primarystorage 102 computing devices and the secondary storage 104 computingdevices.

Primary storage 102 device can be a standalone computing device,management server, a web server, a mobile computing device, or any otherelectronic device or computing system capable of receiving, sending, andprocessing data. In other embodiments, primary storage 102 device canrepresent a server computing system utilizing multiple computers as aserver system. In another embodiment, server computing device can be alaptop computer, a tablet computer, a netbook computer, a personalcomputer, a desktop computer, or any programmable electronic devicecapable of communicating with other computing devices (not shown) withinglobal mirror environment 100 via network 110. In another embodiment,primary storage 102 device represents a computing system utilizingclustered computers and components (e.g., database server computers,application server computers, etc.) that act as a single pool ofseamless resources when accessed within global mirror environment 100.Primary storage 102 device can include internal and external hardwarecomponents, as depicted and described in further detail with respect toFIG. 5. Primary volumes 106 can be one or more data storage devices suchas, but not limited to hard disks and can be located on one or moreprimary storage 102 devices.

Network 110 can be, for example, a local area network (LAN), a wide areanetwork (WAN) such as the Internet, or a combination of the two, and caninclude wired, wireless, or fiber optic connections. In general, network110 can be any combination of connections and protocols that willsupport communications between primary storage 102 devices and secondarystorage 104 devices.

Secondary storage 104 device can be a standalone computing device,management server, a web server, a mobile computing device, or any otherelectronic device or computing system capable of receiving, sending, andprocessing data. In other embodiments, secondary storage 104 device canrepresent a server computing system utilizing multiple computers as aserver system. In another embodiment, server computing device can be alaptop computer, a tablet computer, a netbook computer, a personalcomputer, a desktop computer, or any programmable electronic devicecapable of communicating with other computing devices (not shown) withinglobal mirror environment 100 via network 110. In another embodiment,secondary storage 104 device represents a computing system utilizingclustered computers and components (e.g., database server computers,application server computers, etc.) that act as a single pool ofseamless resources when accessed within global mirror environment 100.Secondary storage 104 device can include internal and external hardwarecomponents, as depicted and described in further detail with respect toFIG. 5. Secondary volumes 108 can be one or more data storage devicessuch as, but not limited to hard disks.

FIG. 2 is a functional block diagram 200 illustrating primary storage102 device comprising consistency group volume commands 202, consistencygroup volume commands 204, volume draining detector 206 and primaryvolumes 106.

Consistency group volume commands 202 of an embodiment of the presentinvention provides the command “EnableNextCGSidefiles” to instruct theone or more secondary volumes 108 of the secondary storage 104 devicesthat all future writes for the associated volumes are to be written tothe “Next CG Sidefiles.” It should be noted that this redirects thewrites from the normal cache for the associated secondary volumes 108 sodata for the next consistency group does not overwrite data for theprevious consistency group. Further, the “Next CG Sidefiles” are datastructures existing on the secondary volumes 108 of the secondarystorage 104 devices of a global mirror environment 100, e.g., availableand unused normal cache space. The “Next CG Sidefiles” exist at thesession level of the global mirror and each structure contains a list ofsecondary volumes 108 that currently have data that has been sent forthe next consistency group. Each secondary volume 108 in this list has alist of sidefiles containing the data for the next consistency group. Itshould be noted that the space reserved for the “Next CG Sidefiles”determines the amount of data that can be written in advance of the nextconsistency group.

Consistency group volume commands 202 of an embodiment of the presentinvention further provides the command “DisableNextCGSidefiles.” toinstruct the one or more secondary volumes 108 of the secondary storage104 devices that all future writes for the associated volume should nolonger be written to the “Next CG Sidefiles.” It should be noted thatthis redirects the writes from the “Next CG Sidefiles” for theassociated volumes so data for the current consistency group can becollected and written to the regular cache. It should further be notedthat the volume commands, e.g., “EnableNextCGSidefiles” and“DisableNextCGSidefiles,” are executed on the one or more primarystorage 102 devices.

Consistency group session commands 204 of an embodiment of the presentinvention provides the command “HardenNextCGSidefiles” to instruct theone or more secondary volumes 108 of the secondary storage 104 devicesthat all data contained in the “Next CG Sidefiles” for the plurality ofsecondary volumes 108 in the specified global mirror session and mergethem into the regular cache. In another aspect of the embodiment of thepresent invention, consistency group session commands 204 provides thecommand “FlushNextCGSidefiles” to instruct the one or more secondaryvolumes 108 of the secondary storage 104 devices that all data containedin the “Next CG Sidefiles” for the plurality of secondary volumes 108 inthe specified global mirror session should be cleared. It should furtherbe noted that the session commands, e.g., “HardenNextCGSidefiles” and“FlushNextCGSidefiles,” are executed on the one or more primary storage102 devices.

Continuing with the embodiment of the present invention, volume drainingdetector 206 determines when a primary volume 106 has completedtransferring its data to a secondary volume 108 for the currentconsistency group. For example, for the plurality of primary volumes 106associated with a global mirror, the volume draining detector 206monitors data indicating when individual primary volumes 106 havecompleted transferring their data for the current consistency group.When a primary volume 106 has completed transferring its data for thecurrent consistency group, the volume draining detector issues thepreviously described consistency group volume commands 202(“EnableNextCGSidefiles”) to allow the primary volume 106 to continuesending data toward the associated secondary volume 108 and anassociated “Next CG Sidefiles.” Once the remaining plurality of primaryvolumes 106 have completed transferring their data, then the volumedraining detector 206 can issue the previously described consistencygroup volume commands 202 (“DisableNextCGSidefiles,”“HardenNextCGSidefiles” and “FlushNextCGSidefiles”) to jumpstart thenormal cache consistency group with the data stored in the plurality of“Next CG Sidefiles.”

FIG. 3 is a functional block diagram 300 illustrating secondary storage104 device comprising consistency group next sidefiles 302 and secondaryvolumes 108. Consistency group next sidefiles 302 are storage locationscreated/generated out of excess cache space. Consistency group nextsidefiles 302 holds the data from a primary volume 106 coming after theprimary volume has written all its data to the current consistencygroup, located on the regular cache of the secondary volume 108, in theperiod of time before all the primary volumes 106 associated with theglobal mirror have completed writing their data to the currentconsistency group. This prevents the writes from queueing on the primaryvolume 106 and provides for the utilization of idle bandwidth associatedwith the primary volumes 106 who have completed transferring their dataassociated with the current consistency group.

FIG. 4 is a flowchart of a method 400 depicting operational steps of amethod to improve recovery point objective via dynamic usage of bindsegments in a global mirror environment, in accordance with anembodiment of the present invention. Looking to step 402, the volumedraining detector 206 makes a determination if any of the primaryvolumes 106 associated with the current consistency group have finishedsending their “out of sync” OOS data toward the associated secondaryvolume 108. If the answer to this determination is no, then step 402continues checking until at least one of the primary volumes 106 hasfinished sending their OOS data toward the secondary volume 108. If theanswer to this determination is yes, then the method 400 proceeds tostep 404.

Continuing at step 404, the method 400 sends an “EnableNextCGSidefiles”from the primary volume 106 toward the associated secondary volume 108.The message directs the primary volume 106, at step 406, to send thewrites for the next consistency group toward the secondary volume 108for storage in the consistency group next sidefiles 302.

Continuing at step 408, the volume draining detector 206 determines ifall of the volumes associated with the current consistency group havecompleted transferring their data. If all the volumes have completedtransferring their data then the method 400 continues to step 410, ifall the volumes have not completed transferring their data then themethod 400 continues to step 402 and looks for the next volume of thecurrent consistency group to complete the transfer of its data.

Continuing at step 410, the method 400 stops processing the changerecordings (CR), i.e, the data associated with the consistency groupnext sidefiles 302 and the method 400 proceeds to step 412. At step 412,the method 400 sends, from the primary storage 102 device, a“DisableNextCGSidefiles” message toward the secondary volumes 108associated with the secondary storage 104 device. The“DisableNextCGSidefiles” instructs the secondary volumes 108 to preventany further writes to the consistency group next sidefiles 302.Continuing at step 414, the method 400 sends, from the primary storage102 device, a “HardenNextCGSidefiles” message toward the secondaryvolumes 108 associated with the secondary storage 104 device. The“HardenNextCGSidefiles” instructs the secondary volumes 108 to transferthe data contained in the consistency group next sidefiles 302 to thecurrent consistency group stored in the normal cache and continueprocessing writes to the normal cache.

FIG. 5 depicts computer system 500, an example computer systemrepresentative of primary storage 102 device and secondary storage 104device. Computer system 500 includes communications fabric 502, whichprovides communications between computer processor(s) 504, memory 506,persistent storage 508, communications unit 510, and input/output (I/O)interface(s) 512. Communications fabric 502 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric502 can be implemented with one or more buses.

Computer system 500 includes processors 504, cache 516, memory 506,persistent storage 508, communications unit 510, input/output (I/O)interface(s) 512 and communications fabric 502. Communications fabric502 provides communications between cache 516, memory 506, persistentstorage 508, communications unit 510, and input/output (I/O)interface(s) 512. Communications fabric 502 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric502 can be implemented with one or more buses or a crossbar switch.

Memory 506 and persistent storage 508 are computer readable storagemedia. In this embodiment, memory 506 includes random access memory(RAM). In general, memory 506 can include any suitable volatile ornon-volatile computer readable storage media. Cache 516 is a fast memorythat enhances the performance of processors 504 by holding recentlyaccessed data, and data near recently accessed data, from memory 506.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 508 and in memory506 for execution by one or more of the respective processors 504 viacache 516. In an embodiment, persistent storage 508 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 508 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 508 may also be removable. Forexample, a removable hard drive may be used for persistent storage 508.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage508.

Communications unit 510, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 510 includes one or more network interface cards.Communications unit 510 may provide communications through the use ofeither or both physical and wireless communications links. Programinstructions and data used to practice embodiments of the presentinvention may be downloaded to persistent storage 508 throughcommunications unit 510.

I/O interface(s) 512 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface 512 may provide a connection to external devices 518 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 518 can also include portable computer readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data used to practiceembodiments of the present invention can be stored on such portablecomputer readable storage media and can be loaded onto persistentstorage 508 via I/O interface(s) 512. I/O interface(s) 512 also connectto display 520.

Display 520 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The components described herein are identified based upon theapplication for which they are implemented in a specific embodiment ofthe invention. However, it should be appreciated that any particularcomponent nomenclature herein is used merely for convenience, and thusthe invention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It is understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality and operation of possible implementations ofsystems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

1. A method for consistency group formation, the method comprising:determining, by one or more primary storage devices, if a first primaryvolume of a plurality of primary volumes associated with a currentconsistency group has completed sending out-of-sync (OOS) data towardsone or more secondary volumes associated with the plurality of primaryvolumes, respectively; responsive to the first primary volume completingsending OOS data, sending, by the one or more primary storage devices,an “EnableNextCGSidefiles” command, not associated with the currentconsistency group, to generate a storage location, associated with anext consistency group, in cache associated with a secondary volume,wherein the secondary volume executes the “EnableNextCGSidefiles”command and wherein the storage location is a “NextCGSidefile” andfurther writes are directed, by the one or more primary storage devices,to the “NextCGSidefile_(i)” sending, by the one or more primary storagedevices, change recording (CR) data for the next consistency grouptoward the secondary volume for storage in the “NextCGSidefile;”determining, by the one or more primary storage devices, if theplurality of primary volumes associated with the current consistencygroup have completed sending out-of-sync (OOS) data towards a pluralityof secondary volumes associated with the plurality of primary volumes,respectively; responsive to the plurality of primary volumes completingsending OOS data, stop sending, by the one or more primary storagedevices, CR data toward the plurality of secondary volumes,respectively; sending, by the one or more primary storage devices, a“DisableNextCGSidefiles” command toward the plurality of secondaryvolumes, wherein the secondary volumes execute the“DisableNextCGSidefiles” command, respectively, and wherein the“DisableNextCGSidefiles” command directs further writes towards thecache associated with a secondary volume; sending, by the one or moreprimary storage devices, a “HardenNextCGSidefiles” command toward theplurality of secondary volumes, wherein the secondary volumes executethe “HardenNextCGSidefiles” command, respectively, and wherein the“HardenNextCGSidefiles” command directs merging data associated with the“NextCGSidefile” with the current consistency group and the plurality ofsecondary volumes are associated with a global mirror environment; andsending, by the one or more primary storage devices, a“FlushNextCGSidefiles” command towards the plurality of secondaryvolumes, wherein the secondary volumes execute the“FlushNextCGSidefiles” command, respectively.